package flex.cc.basicinformation.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import flex.cc.basicinformation.entity.ServiceProviderEntity;

/**
 * 服务商基础信息
 *
 *
 * @author guozejun
 * @email guozejun@sinosoft.com.cn
 * @date 2021-10-14 22:53:59
 */
@Mapper
@Repository
public interface ServiceProviderDao extends BaseMapper<ServiceProviderEntity> {

	ServiceProviderEntity getOneByParams(Map<String, Object> params);

	IPage<ServiceProviderEntity> queryServiceProviderPage(Page<ServiceProviderEntity> page,@Param("service") ServiceProviderEntity service);

	List<ServiceProviderEntity> selectServiceName(@Param("service") ServiceProviderEntity serviceName);

	void insertServiceProvider(@Param("service")ServiceProviderEntity service);

	/**
	 *
	 * @author WANGCONG
	 * 2021年10月18日下午7:24:19
	 * @desc 根据省市区、服务类型匹配服务商信息
	 */
	List<ServiceProviderEntity> choiceServicer(@Param("qv") Map<String, Object> paramsMap);

	/**
	 *
	 * @author WANGCONG
	 * 2021年10月19日下午1:36:19
	 * @desc 根据map参数查询实体信息
	 */
	ServiceProviderEntity findProviderByParam(@Param("qv") Map<String, String> servicerParam);

	/**
	 *
	 * @author WANGCONG
	 * 2021年10月20日下午1:06:52
	 * @desc 手动派单、改派，根据所选服务单的服务类型、省市区集合匹配服务商
	 */
	List<ServiceProviderEntity> findMatchServicer(@Param("qv") Map<String, Object> params);

	/**
	 *
	 * @author WANGCONG
	 * 2021年10月20日下午6:37:02
	 * @desc 根据主键查询服务商
	 */
	ServiceProviderEntity queryById(Integer id);

	/**
	 *
	 * @author WANGCONG
	 * 2021年10月21日上午10:39:59
	 * @desc 不带分页查询列表
	 */
	List<ServiceProviderEntity> findList();


	/**
	 *
	 * @author WANGCONG
	 * 2021年10月18日下午7:24:19
	 * @desc 查询所有服务商信息
	 */
	List<ServiceProviderEntity> getAllServiceName();

	/**
	 * @description 更新方法：其中省市区名称和code，如果为空则置为空【2.2-服务包配置需求】救援商编辑
	 * @param entity 要修改的实体
	 * @return
	 * @author wkangle
	 * @time 2022/03/04 0004 14:56
	 * @exception/throws
	*/
	int update(ServiceProviderEntity entity);

}
